﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using clEntidad;
using clBD;
using System.Data.OleDb;

namespace clBUS
{
    public class BUSExportData:
        BUSBase 
    {
        public BUSExportData(String cadBD) : base(cadBD) { }
        public List<DetalleExportData> get()
        {
            List<DetalleExportData> elems = new List<DetalleExportData>();
            using (OleDbConnection cn = getCn())
            {
                OleDbDataReader dr = new BDBase(cn).execDr("select * from reporte");
                
                DetalleExportData elemento = new DetalleExportData();
                while (dr.Read())
                {
                    if(dr.GetInt32(0)!= elemento.id){
                        elemento = new DetalleExportData();
                        elemento.id=dr.GetInt32(0);

                        elemento.persona.apePat = dr.GetString(1);
                        elemento.persona.apeMat = dr.GetString(2);
                        elemento.persona.nombres  = dr.GetString(3);
                        elemento.ip = dr.GetString(9);
                        elemento.usuario = dr.GetString(10);
                        elemento.persona.cargo = dr.GetString(11);
                        elemento.persona.empresa = dr.GetString(12);
                        elemento.local.nombre = dr.GetString(13);
                        elemento.ingreso = dr.GetDateTime(14);
                        if (!dr.IsDBNull(15))
                        {
                            elemento.salida = dr.GetDateTime(15);
                            elemento.salio = true;
                        }
                        
                        elemento.visitado.nombre = dr.GetString(16);
                        elemento.visitado.ubicacion = dr.GetString(17);
                        elemento.visitado.area = dr.GetString(18);
                        elemento.pase = dr.GetString(19);
                        elemento.esVisita = dr.GetString(20);
                        elems.Add(elemento);
                    }
                    
                    if (!dr.IsDBNull(4))
                    {
                        Equipo equipo = new Equipo();
                        equipo.tipo = dr.GetString(5);
                        equipo.marca = dr.GetString(6);
                        equipo.modelo = dr.GetString(7);
                        equipo.numSerie = dr.GetString(8);
                        elemento.Equipos.Add(equipo);
                    }
                     
                }
            }
            return elems;
        }

    }
}
